From 5dac5dfbf8198f3218f5f48ff9739e0c3ea240fa Mon Sep 17 00:00:00 2001 From: Claudio Cambra Date: Fri, 24 Jan 2025 12:14:30 +0800 Subject: [PATCH] shell_integration/macOS/FileProviderUIExt: Enforce item metadata being valid when fetching shares Signed-off-by: Claudio Cambra --- .../Sharing/ShareTableViewDataSource.swift | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/shell_integration/MacOSX/NextcloudIntegration/FileProviderUIExt/Sharing/ShareTableViewDataSource.swift b/shell_integration/MacOSX/NextcloudIntegration/FileProviderUIExt/Sharing/ShareTableViewDataSource.swift index 4fcea0652..d5e8ae58a 100644 --- a/shell_integration/MacOSX/NextcloudIntegration/FileProviderUIExt/Sharing/ShareTableViewDataSource.swift +++ b/shell_integration/MacOSX/NextcloudIntegration/FileProviderUIExt/Sharing/ShareTableViewDataSource.swift @@ -30,7 +30,6 @@ class ShareTableViewDataSource: NSObject, NSTableViewDataSource, NSTableViewDele } } var capabilities: Capabilities? - var itemMetadata: NKFile? private(set) var itemURL: URL? private(set) var itemServerRelativePath: String? @@ -117,10 +116,13 @@ class ShareTableViewDataSource: NSObject, NSTableViewDataSource, NSTableViewDele presentError("Account data is unavailable, cannot reload data!") return } - itemMetadata = await fetchItemMetadata( + guard let itemMetadata = await fetchItemMetadata( itemRelativePath: serverPathString, account: account, kit: kit - ) - guard itemMetadata?.permissions.contains("R") == true else { + ) else { + presentError("Unable to retrieve file metadata...") + return + } + guard itemMetadata.permissions.contains("R") == true else { presentError("This file cannot be shared.") return } -- 2.30.2